Protecting backup files from malware

ABSTRACT

A method for safeguarding a stored file from malware. In one embodiment, the method includes at least one computer processor receiving, to a storage system, a first file from a first computing device. The method further includes analyzing the received first file to determine whether the received first file is suspected of encryption by malware. The method further includes responding to determining that the received first file is suspected of encryption by malware, initiating one or more actions, including suspending replacement of an instance of the first file backed up to the storage system with the received first file. The method further includes storing the received first file to a portion of the storage system designated for file isolation.

BACKGROUND OF THE INVENTION

The present invention relates generally to the field of file storage,and more particularly to protecting files backed up to storage systemfrom malware manipulation.

Computing devices ranging from mobile devices, such as smartphone; topersonal computers; and to networked computing system are subjects ofattacks by malicious software that can infect a computing device via aplurality of methods. Examples of types of malicious software includeviruses, worms, and Trojans that install other malware programs. Malwareprograms can have minor to major impacts to a user and/or a computingdevice, such as adware that presents a user with unwanted advertisementsand creates uncloseable windows; spyware that monitors actions of a user(e.g., key logging); and ransomware that encrypts files of a computingdevice and sends the computing device/user a message indicating theransom request. Cybercriminals utilize ransomware to extort money from auser in exchange for: a password, decryption key, or other anotherprogram to decrypt the files of the computing device.

Anti-virus and anti-malware program may protect a computing device/userfrom known threats; however, new malware programs and/or modifiedmalware programs can evade the protection offered by anti-virus andanti-malware programs leaving the files of a user vulnerable toransomware. One recommended approach to protect the files of a computingdevice is for a user of the computing device to backup files of thecomputing device to a storage system. A storage system that directlyconnects to the computing device, such as a flash-drive or an externalhard-drive may not be isolated from the actions of a malware program.Cloud-based storage solutions and/or enterprise storage solutionsprovide a secure storage location that is not affected by the operatingsystem of an infected computing device. In addition, a storage solution(e.g., a server for file backup) stores files without executing filesand thereby prevents other stored files from being affected (e.g.,encrypted). Backup of files to a storage solution can occur: on aperiodic basis, as dictated by a user, and/or in response to one or moreprograms of the computing device, such as a file management/backupprogram or a detecting an issue by an anti-malware program.

SUMMARY

According to aspects of the present invention, there is a method,computer program product, and/or system for protecting stored files frommanipulation by malware. In an embodiment, the method includes one ormore computer receiving, to a storage system, a first file from a firstcomputing device. The method further includes analyzing the receivedfirst file to determine whether the received first file is suspected ofencryption by malware. The method further includes responding todetermining that the received first file is suspected of encryption bymalware, initiating one or more actions, including suspendingreplacement of an instance of the first file backed up to the storagesystem with the received first file. The method further includes storingthe received first file to a portion of the storage system designatedfor file isolation.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 illustrates a networked computing environment, in accordance withan embodiment of the present invention.

FIG. 2 depicts a flowchart of the operational steps of a file storageanalysis program, in accordance with an embodiment of the presentinvention.

FIG. 3 depicts a flowchart of the operational steps of a file storagecontrol program, in accordance with an embodiment of the presentinvention.

FIG. 4 is a block diagram of components of a computer, in accordancewith an embodiment of the present invention.

DETAILED DESCRIPTION

Embodiments of the present invention recognize that various technologiesprovide a user of a computing device methods to protect the files of thecomputing device from malware attacks, such as ransomware. Malware is ageneral term used to refer to a variety of forms of hostile or intrusivesoftware, including computer viruses, worms, Trojan horses, ransomware,spyware, adware, scareware. It may be difficult for an anti-malwareprogram to differentiate actions of a malware attack from actions oflegitimate software applications of the computing device, especially ifa user of the computing device utilizes file encryption and filecompression technologies for various purposes. For instance, someactions utilized by a malware program operate similarly to actions oflegitimate software applications. As such, various heuristics utilizedby anti-virus and anti-malware programs can generate false-positiveresults.

Embodiments of the present invention recognize that various file backupsystems (e.g., storage providers and backup service providers) includeversion control for stored files. Rather than completely replacing astored file with a file uploaded for backup, a file backup service mayprovide a user of a computing device the ability to store variousversions of a file on a backup storage system. Some file backup systemsmay constrain the number of versions of a file that are stored. Forexample, based on the service that a user subscribes to, a user may belimited to store five versions of a file for a basic file backup serviceaccount and fifteen versions of a file for a more advance file backupservice account. As a new version of a file is received, another versionof the file is rotated-out (e.g., is deleted, “expires,” etc.). Forexample, in the basic-service account the first version of a file“expires” and is deleted upon receiving a sixth version of the file forbackup. Other file backup systems may rotate-out versions of a filebased on time, timestamps, and/or storage capacity. Storing multipleversions of a file within a backup storage system enables a user of acomputing device to restore a previous version of a file. However, thereis no guarantee that one or more files backed up to a storage systemwere already encrypted by ransomware prior to the ransomware encryptinga current version of a file and presenting a ransom message/threat.

Embodiments of the present invention also recognize thatmalware/ransomware can defeat various file backup schemes. In oneexample, ransomware could force multiple backups of a file in a shortduration to force one or more unencrypted files within a storage systemto expire. In another example, in response to a malware/ransomwareprogram gaining access to the file backup software on a computingdevice, the ransomware may “bloat” files that are backed up to increasethe file size and in response, the uploads force the storage account ofa user to exceed the storage capacity of the account and trigger theexpiration (e.g., deletion) of older versions of one or more files. In afurther example, ransomware could co-opt the backup process, encryptingone or more files prior upload to a storage system, while temporarilymaintaining an unencrypted version of the one or more file on a deviceof a user, before the final encryption of files of a device of a userand presenting the demands of the cybercriminals that created theransomware.

Embodiments of the present invention protect (e.g., safeguard) filebackups from a computing device to a storage system and/or storageservice from various attack strategies of malware/ransomware.Embodiments of the present invention are applicable to cloud-basedbackup services and enterprise-based storage systems/services. Someembodiments of the present invention may be included within the firmwareand/or flash memory of an external backup device associated with acomputing device of a user. Embodiments of the present invention utilizevarious analytical techniques to identify whether a file received forbackup is suspected being affected by a ransomware and/or malwareattack. Suspect files are isolated to prevent initiating a file backupthat could trigger one or more stored files to expire. In addition,embodiments of the present invention notify a user of the computingdevice that a file received for backup is suspect and that the computingdevice may be infected by malware. Various embodiments of the presentinvention can disable backup file rotation prior to receiving a responseindicating whether the computing device is infected withmalware/ransomware.

Some embodiments of the present invention utilize multi-devicecommunications to determine whether a device is infected with malwareand/or whether a storage system generates a false-positive result inresponse to analyzing a received (e.g., uploaded, backed-up) file. Byutilizing multi-device communications, embodiments of the presentinvention prevent intelligent malware on the computing device from“spoofing” a response that indicates a false-positive indication for asuspected file that was received by the storage system. Spoofing refersto malicious actions of a malware program to masquerade as a user andprovide false data, thereby circumventing one or more security measuresand/or initiating actions different from the actions the user wouldinitiate. Embodiments of the present invention can be utilized amongusers that share files and backup the files to the same storage system.By utilizing multi-device communications, embodiments of the presentinvention provide another layer of security by notifying the users thatshare an uploaded file, that at least one user may have one or morefiles and/or a computing device affected by malware.

Further embodiments of the present invention can interface with one ormore other software applications of a computing device, of a storagesystem (e.g., backup service), or another computing system and/orcloud-based service accessible via a network. In one example, inresponse to determining that a computing device is infected withmalware, a backup service can suspend file version rotation for allfiles associated with a storage account and force a backup of all fileson the computing devices associated with the device to isolated storage.Such an action may prevent some of the files of the computing devicefrom being encrypted by ransomware and enables the uploaded file to beanalyzed. In another example, in response to determining that thecomputing device is suspected of a malware infection, an embodiment ofthe present invention can contact a network-accessible anti-malwareprogram/service to scan the computing device. In another example, anembodiment of the present invention may utilize an anti-malwareprogram/service to scan other files of a user not affected by ransomwareto determine whether the backup files within the storage system mayinclude dormant malware that could re-infect the computing device of auser in response to restoring backup files from the storage system tothe computing device.

Further, embodiments of the present invention recognize that byincluding various analyses techniques in a storage system utilized foroff-device file backups by users, as opposed to malware scans for knownvirus and malware signatures, improves detection of unwanted filemodifications. Utilizing feedback from a user to determine whetheranalyses of a backed-up file generates a false positive result,especially for a file shared among user, provides another resource forone or more users to receive warning of suspicious activity with respectto one or more files. In addition, utilizing multi-factor verificationtechniques to respond to a false-positive report increases the securityof the present invention against ever more sophisticated malwareattacks. Also, by suspending file rotation within backup storage systemsthat support version control, the present invention improves theprotection of the files of a user with respect to a ransomware attack.As such, the service and protections of a backup storage system is seento be improved in at least these aspects. Similarly, reporting of sharedfiles, suspected as targeted by a malware attack, to user that thesuspected files ultimately improves the security of the devices of theusers that share files.

The present invention will now be described in detail with reference tothe Figures. FIG. 1 is a functional block diagram illustrating networkedcomputing environment 100 in an embodiment, in accordance with thepresent invention. In an embodiment, networked computing environment 100includes: system 102, device 120, and device 130, all interconnectedover network 110. Many modifications to the depicted environment may bemade by those skilled in the art without departing from the scope of theinvention as recited by the claims.

System 102, device 120, and device 130 may be: laptop computers, tabletcomputers, netbook computers, personal computers (PC), desktopcomputers, personal digital assistants (PDA), smart phones, wearabledevices (e.g., digital eyeglasses, smart glasses, smart watches, smarttelevisions, etc.), or any programmable computer systems known in theart. In certain embodiments, system 102, device 120, and device 130represent computer systems utilizing clustered computers and components(e.g., database server computers, application server computers, etc.)that act as a single pool of seamless resources when accessed throughnetwork 110, as is common in data centers and with cloud-computingapplications. In general, system 102, device 120, and device 130 arerepresentative of any programmable electronic device or combination ofprogrammable electronic devices capable of executing machine-readableprogram instructions and communicating with users of system 102, device120, and device 130, via network 110. System 102, device 120, and device130 may include components, as depicted and described in further detailwith respect to FIG. 4, in accordance with embodiments of the presentinvention.

System 102 includes: storage 103, file backup program 107, communicationprogram 108, file storage analysis program 200, and file storage controlprogram 300. In some embodiments, system 102 accesses/subscribes to oneor more computing programs and/or databases that are utilized by one ormore embodiments of the present invention, and/or device 120 that areincluded within another computing system (not shown) that is networkaccessible. In an example, system 102 may have a license to access ananti-malware program and/or one or more analytics programs as-a-servicevia a cloud-service provider. System 102 transmits a copy of a suspectfile to the other network accessible computing system for analysis, andin response system 102 receives a result of the analysis. Alternatively,system 102 may provide a cloud-based anti-malware program (not shown)network access to scan device 120 for malware.

Storage 103 includes user profiles 104, files 105A thru 105N, and fileisolation 106. In an embodiment, storage 103 may also include variousprograms and/or databases, such as but not limited to: an operatingsystem, a file management program, a database management system, ane-mail program, a suite of analysis/cryptographic programs, ananti-malware program, server-side enterprise software, etc. (not shown)utilized by system 102.

User profiles 104 includes a plurality of profiles of users that utilizesystem 102 as a computing system to backup (e.g., store) various filesfrom one or more instances of device 120. Each user profile of userprofiles 104 may include: storage account information, such as a servicelevel agreement; a list of files stored by a user within system 102; alist of users that share access to one or more files; informationassociated with each user, such as contact preferences (e.g., e-mail,text message, etc.), authentication information, file version controlsetting, an identity corresponding to each instance of device 120; andcontact information for instances of device 130, such as preferredcommunication method and a multi-factor identification scheme.

Account information of a user within user profiles 104 may furtherinclude file version control parameters, costing and paymentinformation, account storage capacity, file backup schedules, etc. Alist of files of a user may also include a list of file attributes foreach file, such as size, encryption protocol, metadata, read-only flags,do not delete/never expire flags, one or more cryptanalysis values(e.g., MD5 values), etc. In addition, based on information associatedwith files identified within user profiles 104, file storage analysisprogram 200 may set timeout durations based on various criteria. In oneexample, in response to a timeout duration expiring for files identifiedas critical, file storage control program 300 responds to the timeoutexpiration as confirmation of a malware attack. In another example, inresponse to a timeout duration expiring, file storage control program300 terminates. In another example, in response to a timeout durationexpiring, file storage control program 300 prompts file storage analysisprogram 200 to transmit another notification to a user.

User profiles 104 may also include information related to device 120,such as an ID, media access control (MAC) address, an Internet protocol(IP) address, a list of security programs and function installed ondevice 120 (e.g., encryptions programs, an anti-malware program, filecompression programs, etc.) and related application programminginterfaces (APIs) for one or more installed programs and/or functions.In an embodiment, user profiles 104 include access and/or controlinformation of an instance of device 120 corresponding to a user.

In one embodiment, file isolation 106 is a portion of storage 103designated for the temporary storage of one or more files received forbackup while analyses are performed on a file received for backup todetermine whether the received file is suspected of encryption bymalware. In another embodiment, file isolation 106 is a portion ofstorage 103 designated for the temporary storage of one or more filesreceived determined to be suspected of encryption by malware. In someembodiments, file isolation 106 is also used to store one or more filesbacked up to system 102 that are identified as belonging to a set offiles of a user or group of users that have a file suspected of and/orinfected by malware. File isolation 106 may utilize volatile storagemedia, persistent storage media, or a combination thereof.

File backup program 107 is a server-side program that receives andstores files backed up from device 120. Based on information within userprofiles 104, file backup program 107 determines the storage capacity ofstorage 103 that is associated with a storage account of a user ofdevice 120. In one embodiment, file backup program 107 is integratedwith file storage analysis program 200 and file storage control program300. In another embodiment, file backup program 107 can executeindependent of file storage analysis program 200 and file storagecontrol program 300. For example, if a user profile within user profiles104 indicates that a user subscribes to a ransomware protection service,then file backup program 107 interfaces with file storage analysisprogram 200 and file storage control program 300. In variousembodiments, file backup program 107 includes file version controlcapabilities and utilizes the file version control parameterscorresponding to a storage account of a user identified within userprofiles 104.

In some embodiments, file backup program 107 isolates one or more files,either received from an instance of device 120 or stored within storage103 of system 102, and suspends the rotation/expiration of one or morefiles in response to file storage analysis program 200 and/or filestorage control program 300 determining that an instance of device issuspected of or subject to a malware attack. In addition, file backupprogram 107 may process one or more buffered, cached, or isolated filesbased, at least in part, on information obtained from file storageanalysis program 200 and/or file storage control program 300, suchremoving a received file from file isolation 106 in response todetermining that a false-positive result is confirmed.

In various embodiments, file backup program 107 buffers or caches a filereceived for backup while the file received for backup is analyzed. Insome scenarios, file backup program 107 buffers or caches a filereceived for backup in a portion of volatile memory (not shown) withinsystem 102 while the file received for backup is analyzed. In otherscenarios, file backup program 107 buffers or caches a file received forbackup in file isolation 106 while the file received for backup isanalyzed. In other embodiments, file backup program 107 restores one ormore files to device 120 after a malware attack is terminated.

Communication program 108 includes one or more programs or protocolsthat enable system 102 to communicate with device 120 and device 130. Inone embodiment, communication program 108. In some embodiments,communication program 108 monitors the activity of network 110 andcommunicates a status of network 110 to file backup program 107. Basedon the status of network 110, file backup program 107 can modify when abackup of one or more files occurs. In an example, communication program108 determines that network traffic is heavy, in response if file backupprogram 107 determines that a large number of files are scheduled for aserver-initiated backup, file backup program 107 may delay theserver-initiated backup.

In another embodiment, communication program 108 interfaces with filestorage analysis program 200 and/or file storage control program 300 totransmit notifications and information to one or more users that backupfiles to system 102, and receives one or more responses from one or moreusers that backup files to system 102. In some scenarios, communicationprogram 108 communicates with a user via a UI associated with filebackup program 126. In other scenarios, communication program 108communicates with a user via a different UI of device 120 and/or device130. In one example, communication program 108 utilizes a text messagingapp to activate a corresponding text messaging version of UI 122 ofdevice 120 and/or UI 132 of device 130. In another example,communication program 108 activates an Internet-based version of UI 132within device 130 to enable a user to interface with file storageanalysis program 200 and/or file storage control program 300.

File storage analysis program 200 is a program that analyzes filesbacked up from an instance of device 120 to system 102. In oneembodiment, file storage analysis program 200 is integrated with filebackup program 107 and file storage control program 300. In anotherembodiment, file storage analysis program 200 is a service that a userof file backup program 107 and system 102 subscribes to, which improvesthe protection of files of device 120 from ransomware.

In a further embodiment, in response to file storage analysis program200 determining that a received file is suspect and/or file storagecontrol program 300 receiving a confirmation that device 120 is affectedby a malware attach, file storage analysis program 200 can analyze otherfiles of a user within storage 103 to determine whether additional filesare suspect. In addition, file storage analysis program 200 may utilizean anti-virus/anti-malware to determine whether other backup files of auser that are not encrypted, are infected with malware.

FIG. 2 is a flowchart depicting operational steps for file storageanalysis program 200, a program that analyzes one or more files received(e.g., uploaded) to a storage account as part of a file backup strategyfor a device of a user. In response to determining that the file is notsuspect, file storage analysis program 200 stores the one or morereceived files. Alternatively, if file storage analysis program 200determines that a file is suspect, such as encryption by ransomware oraffected/infected by malware; then file storage analysis program 200notifies a user to determine whether the result of the analysis is a“false positive” result or that one or more files of a user and/or adevice of the user is affected by malware. In some embodiments, filestorage analysis program 200 utilizes multi-factor verification of amalware event to reduce the possibility of the malware from reporting(e.g., spoofing) a false positive result, in an attempt to disable oneor more security measures associated with the present invention. Invarious embodiments, file storage analysis program 200 initiates one ormore responses in response to identifying a suspect file to protectother versions of the file backed up within a storage account. In anembodiment, one or more instances of file storage analysis program 200may execute concurrently with one or more instances of file storagecontrol program 300.

File storage control program 300 is a program that confirms whetheranalyses performed by file storage analysis program 200 to a filereceived for backup generates a false-positive result. File storagecontrol program 300 may receive confirmation of a false-positive resultfor a received file from: a user that backed up the file, another userthat shares the file, and/or an administrator for a portion of networkedcomputing environment 100. In some embodiments, information within userprofiles 104 dictates the method that file storage control program 300utilizes to confirm a false-positive result.

In one embodiment, if a false-positive result of a file for backup isnot confirmed, then file storage control program 300 initiates variousresponses based on treating device 120 as infected by malware.Alternatively, file storage control program 300 may include one or moretimeout duration criterion associated with receiving a response. In somescenarios, in response to an expiration of a timeout duration, filestorage control program 300 resumes the activities of a storage accountof a user. In other scenarios, in response to an expiration of a timeoutduration, file storage control program 300 treats the file received forbackup and the computing device that uploaded the file as if affected bymalware.

In another embodiment, if file storage control program 300 determinesthat the file received for backup is encrypted by ransomware and/ortreats device 120 as affected by malware, then file storage controlprogram 300 identifies other files associated with a user and/or sharedamong one or more other users. In addition, file storage control program300 suspends the rotation of one or more files for backup for a user andcomputing device that uploaded the affected file. In some embodiments,in response to file storage control program 300 identifying one or moreother users that share a malware affected file, and more specificallyransomware, file storage control program 300 suspends the rotation ofone or more files of the other users that backup files to the storagesystem.

In a further embodiment, file storage control program 300 receives aresponse from one or more programs or systems as opposed to users, suchas an anti-malware that scans one or more computing devices of one ormore users. In some scenarios, file storage control program 300 scansfiles of users, backed up to a storage system for malware. In otherscenarios, file storage control program 300 can dictate that ananti-malware program scans the files of a computing device. In variousscenarios, file storage control program 300 can dictate that a filebackup program retrieves various file from backup storage and/or acomputing device and isolates the retrieved files within the storagesystem for further analyses.

In various embodiments, in response to the termination of a malwareattack within a device of a user, file storage control program 300restores one or more files associated with the user to the device of theuser. Subsequently, file storage control program 300 resumes one or moreactivities associated with a storage account of the user.

In one embodiment, system 102 communicates through network 110 to device120 and device 130. In some embodiments, system 102 communicates withone or more other computing systems and/or computing resources, such asa web server, an e-mail server, a cybersecurity service, etc. (notshown) via network 110. Network 110 can be, for example, a local areanetwork (LAN), a telecommunications network, a wireless local areanetwork (WLAN), such as an intranet, a wide area network (WAN), such asthe Internet, or any combination of the previous and can include wired,wireless, or fiber optic connections. In general, network 110 can be anycombination of connections and protocols that will supportcommunications between system 102, device 120, and device 130, inaccordance with embodiments of the present invention. In variousembodiments, network 110 operates locally via wired, wireless, oroptical connections and can be any combination of connections andprotocols (e.g., personal area network (PAN), near field communication(NFC), laser, infrared, ultrasonic, etc.).

Device 120 may include user interface (UI) 122, storage 123, and filebackup program 126. Storage 123 includes user profiles 124 and files125A thru 125N. In addition storage 123 also stores various programs anddata (not shown) utilized by device 120. Examples of programs thatstorage 123 may include are: an operating system, a web browser; anoffice productivity suite; a communication program, one or moreapplications (apps), such as an instant messaging (IM) app, ananti-malware program; an antivirus program; etc. Examples of data thatstorage 123 may include, but are not limited to are: user preferences, aweb browsing history, music files, video files, etc.

In one embodiment, UI 122 may be a graphical user interface (GUI) or aweb user interface (WUI), and UI 122 can display text, documents, forms,web browser windows, user options, application interfaces, andinstructions for operation, and include the information, such asgraphic, text, and sound that a program presents to a user. In addition,UI 122 controls sequences/actions that the user employs to input and/ormodify profile information, via file backup program 126, file storageanalysis program 200, and/or file storage control program 300. Invarious embodiments, UI 122 displays one or more icons representingapplications that a user can execute via network 110, such as filebackup program 126, file storage analysis program 200, file storagecontrol program 300, and various programs (not shown) of system 102and/or other computing systems accessible via network 110. In addition,UI 122 can control sequences of actions that the user utilizes torespond and/or confirms actions associated with file storage analysisprogram 200, and/or file storage control program 300.

In some embodiments, a user of device 120 can interact with UI 122 via asingular device, such as a touch screen (e.g., display) that performsboth input to a GUI/WUI, and as an output device (e.g., a display)presenting a plurality of icons associated with apps and/or imagesdepicting one or more executing software applications. In otherembodiments, a software program (e.g., a web browser) can generate UI122 operating within the GUI environment of device 120. UI 122 acceptsinput from a plurality of input/output (I/O) devices (not shown)including, but not limited to, a tactile sensor interface (e.g., a touchscreen, a touchpad) or a natural user interface (e.g., voice controlunit, motion capture device, eye tracking, cyberglove, head-up displayetc.). In addition to the audio and visual interactions, UI 122 mayreceive input in response to a user of device 120 utilizing naturallanguage, such as written words or spoken words, device 120 identifiesas information and/or commands.

Device 130 includes UI 132 and various programs and data (not shown).Examples of programs and data that device 130 may include are: anoperating system, a web browser; an office productivity suite; acommunication program, one or more apps, such as an IM app, a telephoneapp, and a video chat app; and data, such as storage account informationfor system 102. In some embodiments, device 130 includes an instance offile backup program 126. In one example, a user of device 130 canmonitor a storage account within system 102. In another example, a userof device 130 can utilize UI 132 and/or an instance of file backupprogram 126 to respond to a notification generated by file storageanalysis program 200.

UI 132 includes various functionalities and capabilities describedpreviously with respect to UI 122. In one embodiment, UI 132 is similarto UI 122 of device 120. For example, device 130 is a computing deviceof another user that shares one or more files stored within system 102with a user of device 120. In some embodiments, UI 132 is a UI or a GUIof device 130, such as the interface for the applications of asmartphone. In various embodiments, UI 132 is a user interface that isgenerated by another app or program in response to device 130 receivinga notification from file storage analysis program 200 and/or enabling auser to interface with file storage control program 300. In an example,UI 132 may be a text message pop-up of a telecommunication app thatnotifies a user of device 130 that one or more files backed up to system102 may be affected with malware. In another embodiment, file storagecontrol program 300 may utilize device 130 and UI 132 to perform analternative verification of a malware event within device 120 to preventmessage “spoofing” by a malware infection of device 120 to indicate afalse positive result from file storage analysis program 200. In someembodiments, UI 132 is generated by an instance of file backup program126 of device 130.

FIG. 2 is a flowchart depicting operational steps for file storageanalysis program 200, a program that analyzes one or more files received(e.g., uploaded) to a storage account as part of a file backup strategyto protect files stored within system 102 from a ransomware attackassociated with a computing device, in accordance with embodiments ofthe present invention. In response to determining that a received fileis suspect, such as encryption by ransomware storage analysis program200 notifies a user to determine whether the analysis of the file is a“false positive” result or that device 120 is affected by malware (e.g.,ransomware). In some embodiments, file storage analysis program 200utilizes multi-factor verification of a malware event to reduce thepossibility of a malware attack from reporting (e.g., spoofing) a falsepositive result in an attempt to disable one or more security measuresassociated with the present invention. In various embodiments, filestorage analysis program 200 processes one or more files shared amongusers. In an embodiment, one or more instances of file storage analysisprogram 200 may execute concurrently with one or more instances of filestorage control program 300.

In step 202, file storage analysis program 200 receives a file to astorage account. In one embodiment, file storage analysis program 200receives a file to a storage account associated with a user of device120, the storage account is included within system 102. In anotherembodiment, file storage analysis program 200 receives a file to astorage account that is shared with a user of device 120 and anothercomputing device (not shown). In one scenario, file storage analysisprogram 200 receives a file to a storage account based on file backupprogram 126 initiating the transfer of the file for backup from device120 to system 102. In another scenario, file storage analysis program200 receives a file to a storage account based on file backup program107 initiating the transfer of the file for backup from device 120 tosystem 102.

In some embodiments, file storage analysis program 200 receives a groupof files for backup. In other embodiments, file storage analysis program200 receives (e.g., retrieves) one or more shared files from anotherinstance of device 120 that belongs to another user. File storageanalysis program 200 utilizes a file backup program 107 and an instanceof file backup program 126 corresponding to the other device to retrievea copy or similar version of a file for analysis (e.g., comparison),discussed in further detail with respect to step 204. In one scenario,file storage analysis program 200 retrieves a file from another instanceof device 120 based on initiating a response (discussed in furtherdetail with respect to step 208) generated by another instance of filestorage analysis program 200 responding to a file that is suspected ofbeing affected by malware. In one scenario, file storage analysisprogram 200 retrieves a file from another instance of device 120 basedon file storage control program 300 determining that a malware attack issuspected and/or confirmed (e.g., not a false positive result) device120.

In various embodiments, file storage analysis program 200 buffers orcaches (e.g., stores) a file received for backup to prevent a rotationof files versions until the received file is analyzed and verified thatthe file received for backup is not affected by ransomware while thefile received for backup is analyzed. In some scenarios, file storageanalysis program 200 buffers or caches a file received for backup in aportion of volatile memory (not shown) within system 102 while the filereceived for backup is analyzed. In other scenarios, file storageanalysis program 200 buffers or caches a file received for backup infile isolation 106 while the file received for backup is analyzed. In afurther embodiment, file storage analysis program 200 buffers one ormore files and/or versions of files retrieved from storage 103 to fileisolation 106 in response to an instance of file storage analysisprogram 200 receiving a file from device 120 that analyzes as beingsuspect.

In step 204, file storage analysis program 200 analyzes the receivedfile. In one embodiment, file storage analysis program 200 analyzes thereceived file to determine whether the received (e.g., uploaded, backedup, etc.) file is affected by malware, and more specifically, whetherthe received file is encrypted by ransomware. In another embodiment,file storage analysis program 200 analyzes a received file that isbuffered within file isolation 106.

In some embodiments, file storage analysis program 200 analyzes fileattributes, a file extension, metadata, and/or the structure of thereceived file to determine whether the received file is affected (e.g.,encrypted) by malware, such as ransomware. In one scenario, file storageanalysis program 200 analyzes the received file and determines that thestructure of the file is a compressed format or an archive file format,such as a .zip format; however, the file extension indicates a differentformat, such a text or presentation graphics format. In anotherscenario, file storage analysis program 200 analyzes the received fileand determines that the structure of the file is unstructured or is nota delimiter-separated format; however, the file extension is .csv(comma-separated values). In some scenarios, file storage analysisprogram 200 compares the metadata associated with the received file to aset of properties related to the received file, such as file size. Inaddition, file storage analysis program 200 may include the fileextension within the analysis. In one example, file storage analysisprogram 200 may determine that a file is suspect based on the fileextension indicating that the file is a document file but documentproperties and/or file metadata indicates that the received file is adifferent file type.

In various embodiment, file storage analysis program 200 analyzes thereceived file based on comparing the received version of a file to acurrently stored version of the file and/or information associated witheach file of a user included within user profiles 104. In one example,file storage analysis program 200 may perform a Diff (e.g., a datacomparison tool for calculating data difference and the results thereof)analysis between file versions to determine the extent of the changebetween the content within two versions of the file. In another example,file storage analysis program 200 may perform an entropy analysisbetween two versions of the received file. In both examples, the greaterthe difference the greater the probability the received file isencrypted by ransomware.

Still referring to step 204 in various embodiments, file storageanalysis program 200 analyzes the received file based on informationassociated with each version of the file included within user profiles104. In an example, file storage analysis program 200 analyzes filesstored within system 102 prior to storage utilizing a MD5 algorithm thatgenerates a set of hash values for a file (e.g., a hash value for eachportion of a file). File storage analysis program 200 can utilize thestored set of hash values associated with various versions of a file tocompare to the set of hash values associated with the received file.

In a further embodiment, file storage analysis program 200 obtains alist of files associated with a user from user profiles 104 to identifyother files that a user stored within system 102 that are affected. Inone scenario, a ransomware program (not shown) may rename as well asencrypt a set of files of a user. In an example, a user of device 120backs up three files: note01.txt (file 125A), response.doc (file 125B),and data.csv (file 125C), which correspond to version files 105A, 105B,and 105C. However, a ransomware program renames the three files prior toupload so that note01.txt corresponds to file 125B, response.doccorresponds to file 125C, and data.csv corresponds to file 125A. Filestorage analysis program 200 may utilize various analyses to determine,based on one or more file properties or data structures within eachfile, that the malware affected files have a different correspondence:file 125C now corresponds to file 105B, file 125B corresponds to file105A, and file 125A corresponds to file 105C. Therefore, file storageanalysis program 200 determines that each of these three files issuspect based on one or more factors.

Many modifications and variations will be apparent to those of ordinaryskill in the art without departing from the scope and spirit of theinvention. As is known to one skilled in the art, there are a pluralityof methods to determine whether a file has been modified and/orencrypted by a malware attack such as a ransomware program. The currentinvention utilizes some of these methods within examples of variousembodiments of the present invention.

In decision step 205, file storage analysis program 200 determineswhether the received file is suspect. In one embodiment, file storageanalysis program 200 determines that a received file is suspect based onone or more analyses of the received file by system 102. In anotherembodiment, file storage analysis program 200 determines that a receivedfile is suspect based a result of one or more analyses performed byanother network-accessible computing system (not shown). In someembodiments, file storage analysis program 200 determines that thereceived file that is shared by one or more users is suspect based on acomparison of the file received from device 120 and a same version orsimilar version of the file retrieved from another instance of device120 of a user that shares the file. In other embodiments, storageanalysis program 200 determines that one or more other files of areceived group of files is suspect in response to file storage analysisprogram 200 determining that one of the group of files is suspect.

In decision step 205, responsive to determining that the received fileis suspect (Yes branch, decision step 205), file storage analysisprogram 200 notifies a user associated with the file that is suspect(step 206).

In step 206, file storage analysis program 200 file storage analysisprogram 200 notifies a user associated with the file that is suspect. Inone embodiment, file storage analysis program 200 notifies a user ofdevice 120 that the received file is suspect (e.g., is encrypted byransomware, is infected with malware, etc.) by utilizing UI 122 ofdevice 120. In one scenario, file storage analysis program 200 notifiesa user of device 120 via a GUI associated with file backup program 126.In another scenario, file storage analysis program 200 notifies a userthat the received file is suspect via a different instance of UI 122,such as a text message via an instant messaging program, an e-mail viaan e-mail, and/or a warning pop-up/icon. In another embodiment, filestorage analysis program 200 notifies (e.g., warns) each user thatshares the received file that the file is suspect.

Still referring to step 206 in some embodiments, file storage analysisprogram 200 notifies a user via multiple methods and/or multiplecomputing devices to prevent spoofing of false positive by a malwareprogram. In one scenario, file storage analysis program 200 transmits anotification to both device 120 and device 130. In an example, filestorage analysis program 200 transmits the same type of notification toboth device 120 and device 130, such as an e-mail message with two weblinks. A first web link can indicate a false-positive result, and asecond web link can confirm a malware attack within device 120. Inanother scenario, file storage analysis program 200 transmits differentinformation to device 120 and device 130. In one example, file storageanalysis program 200 utilizes two-factor identification where device 130receives a character string for input to a message within UI 122 ofdevice 120 to confirm whether or not device 120 and/or the received fileis affected by malware.

In some scenarios, file storage analysis program 200 and/or file storagecontrol program 300 provides a notification reiterating to a user thestatus of device 120 in either case. In one example, device 130 receivesa message from system 102 reiterating the status of device 120. If thestatus of device 120 does not match the status that the user input, thenthe user of device 130 may utilize UI 132 to notify file storage controlprogram 300 that device 120 is compromised. In another example, if filestorage analysis program 200 does not receive a response from device 120within a predetermined period of time, then file storage analysisprogram 200 and/or file storage control program 300 notifies the useragain via UI 132 of device 130.

In a further embodiment, as discussed with respect to one user of a filesuspected of being affected by malware, if the suspect file is a sharedfile, then file storage analysis program 200 notifies each user viamultiple methods and/or multiple computing devices. By notifying eachuser of the shared file that is affected by malware, file storageanalysis program 200 may enable the users of other instances of device120 from spreading the malware prior to the malware activating theransomware aspect and encrypting other files of the other users.

In step 208, file storage analysis program 200 initiates a set ofresponses. In one embodiment, file storage analysis program 200initiates one or more responses of a set of responses prior receivinginput from a user of confirming whether device 120 is affected (e.g.,attacked) by malware or not a device 120 is not affected by malware.Examples of responses include isolating the received file, suspendingthe version control rotation of the suspect file, setting a timeoutduration for a response, and transmitting a copy of the suspect file toanother computing system (not shown) for analysis. In anotherembodiment, file storage analysis program 200 initiates one or moreother responses of the set of response that affect other files of theuser the uploaded the suspect file. Other responses may includesuspending file rotation for other files of the user identified withinuser profiles 104 for the user and within some computing environments,such as an enterprise computing system, notifying the administrator ofthe enterprise that the user has at least one file suspected of beingaffected by malware.

In some embodiments, file storage analysis program 200 initiates a setof responses with respect to one or more other users that share a filethat is suspect. In one example, file storage analysis program 200blocks one or more other users that share a file that is suspect fromdownloading or restoring another shared file stored within system 102until the other file is scanned and verified not to be infected withmalware. In another example, file storage analysis program 200 suspendsfile version rotation for another file that is shared with the user ofthe suspect file. In another example, file storage analysis program 200retrieves a copy of the other shared file from one of the other user.File storage program 200 may utilize the retrieved file to compare, suchas via a cryptographic has function to another version of the othershared file within storage 103 to determine whether the version of theother shared file within storage 103 is also suspect.

Still referring to step 208 in a further embodiment, file storageanalysis program 200 initiates other responses, such as isolating one ormore other files associated with the user and analyzes the one or morerecent files. In one scenario, if system 102 includes an anti-malwareprogram, then file storage analysis program 200 may scan the one or moreother files of a user, such as the most recent version, to determinewhether any of the one or more other files associated with the user areinfected with malware that is dormant at this point in time and respondbased on the determination. In an example, file storage analysis program200 determines that other files associated with the user are infectedwith malware and in response, file storage analysis program 200 utilizescommunication program 108 to notify the user which other files areinfected with malware. In addition, file storage analysis program 200can stop file backup program 107 from preforming one or more filerestores to device 120 to prevent re-infecting device 120 with malware.

In another scenario, if system 102 does not includes an anti-malwareprogram, then file storage analysis program 200 can transmit a copy ofthe one or more other files associated with a user to anothernetwork-accessible computing system (not shown), to determine whetherany of the one or more other files associated with the user are infectedwith malware that is dormant at this point in time and respond based onthe determination. In some scenarios, file storage analysis program 200utilizes network 110 to initiate one or more responses within device120, such as modifying the actions of file backup program 126,activating an on-device anti-malware program, linking device 120 to anetwork accessible anti-malware program, setting a flag for device 120to operate in “safe mode” at the next power-on, etc.

Referring to decision step 205, responsive to determining that thereceived file is not suspect (No branch, decision step 205), filestorage analysis program 200 stores the file (step 209).

In step 209, file storage analysis program 200 stores the file. Inaddition, file storage analysis program 200 migrates, moves, and/ordeletes a copy of the received file from a storage buffer/cache or fileisolation 106. In one embodiment, file storage analysis program 200interfaces with backup program 107 to store the received file. In onescenario, in response to a storage account of a user not utilizingversion control, the received file replaces a file backed up withinstorage 103. In another scenario, in response to a storage account of auser utilizing version control, the file received by storage analysisprogram 200 is placed within a file rotation scheme within storage 103.

In another embodiment, storage analysis program 200 stores the receivedfile. In some embodiments, storage analysis program 200 also notifiesother users of a shared file that is received that storage analysisprogram 200 stored another version of the file to storage 103. In oneexample, storage analysis program 200 utilizes communication program 108and/or file backup program 107 to interface with UI 122 to notify otherusers of a shared file that another version of the file is stored withinsystem 102. In another example, storage analysis program 200 utilizesfile backup program 107 to interface with file backup program 126 andupdates a list of files storage within system 102. The list of storedfiles and corresponding version information may be updated withininstances of user profile 124 of corresponding instances of device 120of other users that share the file.

FIG. 3 is a flowchart depicting operational steps for file storagecontrol program 300, a program for confirming whether analyses performedby file storage analysis program 200 to a file for backup is afalse-positive result, in accordance with embodiments of the presentinvention. In one embodiment, if a false-positive result of a file forbackup is not confirmed, then file storage control program 300 initiatesvarious responses based on treating device 120 as infected by malware.In another embodiment, file storage control program 300 identifies otherfiles associate with a user and/or shared among one or more other usersaffected by a malware attack. In various embodiments, in response to thetermination of a malware attack within a device of a user, file storagecontrol program 300 restores one or more files associated with the userto the device of the user. Subsequently, file storage control program300 resumes one or more activities associated with a storage account ofthe user.

In step 302, file storage control program 300 receives a response. Inaddition, file storage control program 300 may receive additionalinformation that affects a response, such as file storage analysisprogram 200 dictating that multi-device confirmation is utilized toconfirm a false-positive result for a suspect file, or a timeoutduration is dictated for a response. In one embodiment, file storagecontrol program 300 receives a response from a user of device 120 inresponse to a notification of a suspect file from file storage analysisprogram 200. In one scenario, file storage control program 300 receivesa response for a user of device 120. In another scenario, file storagecontrol program 300 receives a response from another device and/or anadditional device associated with a user of a suspect file, such asdevice 130 via communications program 108. In an example, file storagecontrol program 300 determines that a user has authority to indicate amalware attack. However, file storage control program 300 dictates thatanother device (e.g., device 130) and/or information from the otherdevice is required to confirm a false-positive result for a suspectfile. In another embodiment, file storage control program 300 receives aresponse from another program, such as an anti-malware program.

In some embodiments, file storage control program 300 receives aresponse from another user. In one scenario, file storage controlprogram 300 receives a response from another user that shares a suspectfile with the user of device 120. In another scenario, file storagecontrol program 300 receives a response from an administrator of aportion of networked computing environment 100. In an example, filestorage control program 300 determines that a user has authority toindicate a malware attack but confirming a false-positive result islimited to another program or an administrator of a portion of networkedcomputing environment 100. In other embodiments, file storage controlprogram 300 receives an internally generated response based on filestorage analysis program 200 setting a timeout duration for a response(previously discussed with respect to FIG. 2, Step 208). In onescenario, if file storage control program 300 determines, based oninformation within user profiles 104, that a suspect file is identifiedas non-critical, then file storage control program 300 responds to anexpiration of a timeout duration as a false-positive result. In anotherscenario, if file storage control program 300 determines, based oninformation within user profiles 104, that a suspect file is identifiedas critical, then file storage control program 300 responds to anexpiration of a timeout duration as if device 120 is subject to amalware attack (e.g., a false-positive is not confirmed).

In decision step 303, file storage control program 300 determineswhether a false-positive result is confirmed. In one embodiment, filestorage control program 300 determines that a false-positive result fora suspected file is confirmed based on input from: a user via a user ofdevice 120; a multi-factor verification scheme utilizing device 130, anadministrator of a portion of networked computing environment 100,and/or an expiration of a timeout duration.

In another embodiment, file storage control program 300 determines thata false-positive result is not confirmed. In one scenario, file storagecontrol program 300 determines that a false-positive result is notconfirmed based on a user indicating that device 120 is affected bymalware, such as the suspect file identified by file storage analysisprogram is encrypted by ransomware. In another scenario, file storagecontrol program 300 determines that a false-positive result is notconfirmed based on receiving a response from an anti-malware program(not shown) that device 120 is affected by malware. In some embodiments,file storage control program 300 determines that a false-positive resultis not confirmed based on information within user profiles 104 and anexpiration of a timeout duration. In other embodiments, file storagecontrol program 300 determines that a false-positive result is notconfirmed based one or more responses from users of other instances ofdevice 120 that share the suspect file associated with the user ofdevice 120.

In decision step 303, responsive to determining that a false-positiveresult is not confirmed (No branch, decision step 303), file storagecontrol program 300 suspends a rotation of file(s) that are subject tobackup (step 304).

In step 304, file storage control program 300 suspends a rotation offile(s) that are subject to backup. In one embodiment, file storagecontrol program 300 suspends a rotation (e.g., version controladditions/deletions) of the suspect file received for backup. In anotherembodiment, file storage control program 300 suspends (e.g., locks out)a rotation of a set files that are subject to backup that are associatedwith the user of device 120. In one example, file storage controlprogram 300 suspends a rotation of all files for backup that areidentified within a list of files associated with the user of device120, such as within a profile of the user included in user profiles 104.In another example, file storage control program 300 suspends a rotationof files for backup that are associated with device 120; however, filessubject to backup for a different instance of device 120 are notaffected. In some embodiments, file storage control program 300 suspendsa rotation of a set files that are subject to backup that are shared bya user of device 120 with one or more other users.

In step 306, file storage control program 300 identifies file(s)affected by a malware attack. Files affected by a malware attack includefiles that are encrypted by ransomware and/or file infected with malwarethat is currently dormant (e.g., not executing). In one embodiment, filestorage control program 300 identifies one or more files affected by amalware attack related to device 120 by utilizing various analysistechniques employed by file control analysis program 200, such as toidentify file encrypted by ransomware. In one scenario, file storagecontrol program 300 analyzes other files of a user within storage 103 toidentify files affected by malware. In another scenario, file storagecontrol program 300 executes file backup program 107 to upload one ormore other files of device 120 to file isolation 106 for analyses andidentification of one or more files affected by a malware attack.

In another embodiment, file storage control program 300 utilizes ananti-malware program (not show) included within system 102 and/oraccessible via network 110 to identify whether one or more files areaffected by a malware attack and/or are infected with dormant malware.In one scenario, file storage control program 300 utilizes ananti-malware program to analyze other files of a user within storage 103to identify files affected by malware. In another scenario, file storagecontrol program 300 executes file backup program 107 to upload one ormore other files of device 120 to file isolation 106 and utilizes ananti-malware program to analyze and identifies of one or more filesaffected by a malware attack.

In various embodiments, file storage control program 300 analyzes filesof one or more users that share a file affected by malware. Similarly,file storage control program 300 analyzes files within storage 103and/or another instance of device 120 associated with the shared fileaffected by malware. In a further embodiment, if an anti-malware programutilized by file storage control program 300 cannot identify other filesaffected by malware, then file storage control program 300 may utilizeone or more recursive comparison techniques to identify filespotentially affected by malware. In one scenario, file storage controlprogram 300 may compare different unencrypted files to determine whetherthe different files include common elements that may not be included ineach version of a file. In an example, file storage control program 300compares different document file of file extension “.docx” andidentifies embedded macros and/or script code. In a subsequentcomparison among different versions of the same file, file storagecontrol program 300 determines that the embedded macros and/or scriptcode is not included in each version of the file, such as an embeddedmacro is included within files 125E thru 125H but does not exist withinfile 125A thru 125D.

In decision step 307, file storage control program 300 determineswhether a malware attack is terminated. In one embodiment, file storagecontrol program 300 determines that a malware attack within device 120is terminated based on receiving a response from the user of device 120,such as via device 120 and/or device 130. In another embodiment, filestorage control program 300 determines that a malware attack withindevice 120 is terminated based on receiving a response an anti-malwareprogram (not shown). In one scenario, file storage control program 300determines that a malware attack within device 120 is terminated basedon receiving a response an anti-malware program of device 120. Inanother scenario, file storage control program 300 determines that amalware attack within device 120 is terminated based on receiving aresponse an anti-malware program that scans device 120 via network 110.In various embodiments, file storage control program 300 determines thata malware attack within device 120 is terminated based on receiving aresponse an administrator of a portion of networked computingenvironment 100 that is responsible for device 120, such as a corporatecybersecurity department.

In decision step 307, responsive to determining that a malware attack isnot terminated (e.g., is still active) (No branch, decision step 307),file storage control program 300 interfaces with a user (step 308).

In step 308, file storage control program 300 interfaces with a user. Inone embodiment, file storage control program 300 interfaces with a userby communicating a status (e.g., information) of one or more filesassociated with the user of device 120. File storage control program 300may utilize device 120 and/or device 130 to interface with the user. Inan example, file storage control program 300 may identify: the files ofthe user encrypted by ransomware including the versions of each filethat are also encrypted, the files of a user infected with malware, andthe files of the user that are not affected by malware. In anotherembodiment, file storage control program 300 interfaces with one or moreother users that share one or more files associated with the user ofdevice 120 to advise the one or more other users that one or more sharedfiles and/or device 120 are affected by malware. In a furtherembodiment, file storage control program 300 also communicates a status(e.g., information) of one or more files associated with each of theother users that shares an affected file associated with the user ofdevice 120.

In some embodiments, file storage control program 300 interfaces with anadministrator and/or cybersecurity group associated with a portion ofnetworked computing environment 100 related to device 120 and system102. File storage control program 300 may identify a status of each filecorrespond version of a file associated with the one or more usersaffected by a malware attack.

Referring to decision step 307, responsive to determining that a malwareattack is terminated (Yes branch, decision step 307), file storagecontrol program 300 restores file(s) to a device (Step 310).

In step 310, file storage control program 300 restores file(s) to adevice. In one embodiment, file storage control program 300 restores oneor more files to the user of device 120. Based on determining whichfiles of device 120 are encrypted by ransomware, file storage controlprogram 300 restores an unaffected version of the one or more files fromstorage 103 to device 120. In another embodiment, file storage controlprogram 300 restores one or more files from storage 103 to device 120based on receiving a selection of files from a user. In variousembodiments, file storage control program 300 prevents a user fromrestoring one or more files from storage 103 to a device of the useruntil the stored one or more files are scanned for malware, andidentified as safe to use. In addition, file storage control program 300may maintain one or more files within isolation 106 that are infectedwith malware until an anti-malware program (not shown) can disinfect theinfected files. File storage control program 300 may restore adisinfected file to a related instance of device 120 and/or to storage103.

In some embodiments, file storage control program 300 restores one ormore files to the user that shared one or more files affected bymalware. File storage control program 300 may delay restoring one ormore files to a user that shared a file affected with malware until thecorresponding instance of device 120 for the user is determined to befree of a malware infection. Subsequently, file storage control program300 resumes activity associated with a storage account (discussed infurther detail with respect to step 312).

Referring to decision step 303, responsive to determining that a falsepositive is confirmed (Yes branch, decision step 303), file storagecontrol program 300 resumes activity associated with a storage account(step 312).

In step 312, file storage control program 300 resumes activityassociated with a storage account. In one embodiment, file storagecontrol program 300 resumes activity associated with a storage accountby re-enabling file rotation associated with files backed up utilizingversion control. In another embodiment, resumes activity associated witha storage account by allowing file sharing. In some embodiments, inresponse to file storage control program 300 resuming activityassociated with a storage account, file storage control program 300deletes malware affected files from file isolation 106. In otherembodiments, file storage control program 300 retains one or moreransomware affected files within file isolation 106 for possibledecryption by a cybersecurity department associated with a portion ofnetworked computing environment 100.

FIG. 4 depicts a block diagram of computer system 400, which isrepresentative of system 102, device 120, and device 130. Computersystem 400 is an example of a system that includes software and data412. Computer system 400 includes processor(s) 401, memory 402, cache403, persistent storage 405, communications unit 407, input/output (I/O)interface(s) 406, and communications fabric 404. Communications fabric404 provides communications between memory 402, cache 403, persistentstorage 405, communications unit 407, and I/O interface(s) 406.Communications fabric 404 can be implemented with any architecturedesigned for passing data and/or control information between processors(such as microprocessors, communications and network processors, etc.),system memory, peripheral devices, and any other hardware componentswithin a system. For example, communications fabric 404 can beimplemented with one or more buses or a crossbar switch.

Memory 402 and persistent storage 405 are computer readable storagemedia. In this embodiment, memory 402 includes random access memory(RAM). In general, memory 402 can include any suitable volatile ornon-volatile computer readable storage media. Cache 403 is a fast memorythat enhances the performance of processor(s) 401 by holding recentlyaccessed data, and data near recently accessed data, from memory 402.

Program instructions and data used to practice embodiments of thepresent invention may be stored in persistent storage 405 and in memory402 for execution by one or more of the respective processor(s) 401 viacache 403. In an embodiment, persistent storage 405 includes a magnetichard disk drive. Alternatively, or in addition to a magnetic hard diskdrive, persistent storage 405 can include a solid-state hard drive, asemiconductor storage device, a read-only memory (ROM), an erasableprogrammable read-only memory (EPROM), a flash memory, or any othercomputer readable storage media that is capable of storing programinstructions or digital information. In an embodiment, with respect tosystem 102, storage 103 and file isolation 106 are included inpersistent storage 405. In some embodiments, a portion of file isolation106 is included within memory 402.

The media used by persistent storage 405 may also be removable. Forexample, a removable hard drive may be used for persistent storage 405.Other examples include optical and magnetic disks, thumb drives, andsmart cards that are inserted into a drive for transfer onto anothercomputer readable storage medium that is also part of persistent storage405. Software and data 412 are stored in persistent storage 405 foraccess and/or execution by one or more of the respective processor(s)401 via cache 403 and one or more memories of memory 402. With respectto system 102, software and data 412 includes: user profiles 104, files105A thru 105N, file backup program 107, communication program 108, filestorage analysis program 200, file storage control program 300, andvarious programs (not shown). In addition, a portion of persistentstorage 405 may be allocated for file isolation 106. With respect todevice 120, software and data 412 includes UI 122, user profiles 124,files 125A thru 125N, and file backup program 126. With respect todevice 130, software and data 412 includes: UI 132 and various programsand data (not shown).

Communications unit 407, in these examples, provides for communicationswith other data processing systems or devices, including resources ofsystem 102, device 120, and device 130. In these examples,communications unit 407 includes one or more network interface cards.Communications unit 407 may provide communications through the use ofeither or both physical and wireless communications links. Programinstructions and data used to practice embodiments of the presentinvention may be downloaded to persistent storage 405 throughcommunications unit 407.

I/O interface(s) 406 allows for input and output of data with otherdevices that may be connected to each computer system. For example, I/Ointerface(s) 406 may provide a connection to external device(s) 408,such as a keyboard, a keypad, a touch screen, and/or some other suitableinput device. External device(s) 408 can also include portable computerreadable storage media, such as, for example, thumb drives, portableoptical or magnetic disks, and memory cards. Software and data 412 usedto practice embodiments of the present invention can be stored on suchportable computer readable storage media and can be loaded ontopersistent storage 405 via I/O interface(s) 406. I/Oterface(s) 406 alsoconnect to display 409.

Display 409 provides a mechanism to display data to a user and may be,for example, a computer monitor. Display 409 can also function as atouch screen, such as the display of a tablet computer or a smartphone.

The programs described herein are identified based upon the applicationfor which they are implemented in a specific embodiment of theinvention. However, it should be appreciated that any particular programnomenclature herein is used merely for convenience, and thus theinvention should not be limited to use solely in any specificapplication identified and/or implied by such nomenclature.

The present invention may be a system, a method, and/or a computerprogram product at any possible technical detail level of integration.The computer program product may include a computer readable storagemedium (or media) having computer readable program instructions thereonfor causing a processor to carry out aspects of the present invention.

The computer readable storage medium can be a tangible device that canretain and store instructions for use by an instruction executiondevice. The computer readable storage medium may be, for example, but isnot limited to, an electronic storage device, a magnetic storage device,an optical storage device, an electromagnetic storage device, asemiconductor storage device, or any suitable combination of theforegoing. A non-exhaustive list of more specific examples of thecomputer readable storage medium includes the following: a portablecomputer diskette, a hard disk, a random access memory (RAM), aread-only memory (ROM), an erasable programmable read-only memory (EPROMor Flash memory), a static random access memory (SRAM), a portablecompact disc read-only memory (CD-ROM), a digital versatile disk (DVD),a memory stick, a floppy disk, a mechanically encoded device such aspunch-cards or raised structures in a groove having instructionsrecorded thereon, and any suitable combination of the foregoing. Acomputer readable storage medium, as used herein, is not to be construedas being transitory signals per se, such as radio waves or other freelypropagating electromagnetic waves, electromagnetic waves propagatingthrough a waveguide or other transmission media (e.g., light pulsespassing through a fiber-optic cable), or electrical signals transmittedthrough a wire.

Computer readable program instructions described herein can bedownloaded to respective computing/processing devices from a computerreadable storage medium or to an external computer or external storagedevice via a network, for example, the Internet, a local area network, awide area network and/or a wireless network. The network may comprisecopper transmission cables, optical transmission fibers, wirelesstransmission, routers, firewalls, switches, gateway computers and/oredge servers. A network adapter card or network interface in eachcomputing/processing device receives computer readable programinstructions from the network and forwards the computer readable programinstructions for storage in a computer readable storage medium withinthe respective computing/processing device.

Computer readable program instructions for carrying out operations ofthe present invention may be assembler instructions,instruction-set-architecture (ISA) instructions, machine instructions,machine dependent instructions, microcode, firmware instructions,state-setting data, configuration data for integrated circuitry, oreither source code or object code written in any combination of one ormore programming languages, including an object oriented programminglanguage such as Smalltalk, C++, or the like, and procedural programminglanguages, such as the “C” programming language or similar programminglanguages. The computer readable program instructions may executeentirely on the user's computer, partly on the user's computer, as astand-alone software package, partly on the user's computer and partlyon a remote computer or entirely on the remote computer or server. Inthe latter scenario, the remote computer may be connected to the user'scomputer through any type of network, including a local area network(LAN) or a wide area network (WAN), or the connection may be made to anexternal computer (for example, through the Internet using an InternetService Provider). In some embodiments, electronic circuitry including,for example, programmable logic circuitry, field-programmable gatearrays (FPGA), or programmable logic arrays (PLA) may execute thecomputer readable program instructions by utilizing state information ofthe computer readable program instructions to personalize the electroniccircuitry, in order to perform aspects of the present invention.

Aspects of the present invention are described herein with reference toflowchart illustrations and/or block diagrams of methods, apparatus(systems), and computer program products according to embodiments of theinvention. It will be understood that each block of the flowchartillustrations and/or block diagrams, and combinations of blocks in theflowchart illustrations and/or block diagrams, can be implemented bycomputer readable program instructions.

These computer readable program instructions may be provided to aprocessor of a general purpose computer, special purpose computer, orother programmable data processing apparatus to produce a machine, suchthat the instructions, which execute via the processor of the computeror other programmable data processing apparatus, create means forimplementing the functions/acts specified in the flowchart and/or blockdiagram block or blocks. These computer readable program instructionsmay also be stored in a computer readable storage medium that can directa computer, a programmable data processing apparatus, and/or otherdevices to function in a particular manner, such that the computerreadable storage medium having instructions stored therein comprises anarticle of manufacture including instructions which implement aspects ofthe function/act specified in the flowchart and/or block diagram blockor blocks.

The computer readable program instructions may also be loaded onto acomputer, other programmable data processing apparatus, or other deviceto cause a series of operational steps to be performed on the computer,other programmable apparatus or other device to produce a computerimplemented process, such that the instructions which execute on thecomputer, other programmable apparatus, or other device implement thefunctions/acts specified in the flowchart and/or block diagram block orblocks.

The flowchart and block diagrams in the Figures illustrate thearchitecture, functionality, and operation of possible implementationsof systems, methods, and computer program products according to variousembodiments of the present invention. In this regard, each block in theflowchart or block diagrams may represent a module, segment, or portionof instructions, which comprises one or more executable instructions forimplementing the specified logical function(s). In some alternativeimplementations, the functions noted in the blocks may occur out of theorder noted in the Figures. For example, two blocks shown in successionmay, in fact, be executed substantially concurrently, or the blocks maysometimes be executed in the reverse order, depending upon thefunctionality involved. It will also be noted that each block of theblock diagrams and/or flowchart illustration, and combinations of blocksin the block diagrams and/or flowchart illustration, can be implementedby special purpose hardware-based systems that perform the specifiedfunctions or acts or carry out combinations of special purpose hardwareand computer instructions.

As used herein, a list of alternatives, such as “at least one of A, B,and C” should be interpreted to mean “at least one A, at least one B, atleast one C, or any combination of A, B, and C.”

Additionally, the phrase “based on” should be interpreted to mean“based, at least in part, on.”

The descriptions of the various embodiments of the present inventionhave been presented for purposes of illustration, but are not intendedto be exhaustive or limited to the embodiments disclosed. Manymodifications and variations will be apparent to those of ordinary skillin the art without departing from the scope and spirit of the invention.The terminology used herein was chosen to best explain the principles ofthe embodiment, the practical application or technical improvement overtechnologies found in the marketplace, or to enable others of ordinaryskill in the art to understand the embodiments disclosed herein.

What is claimed is:
 1. A computer program product for safeguarding astored file from malware, the computer program product comprising: oneor more computer readable storage media and program instructions storedon the one or more computer readable storage media, the programinstructions readable/executable by one or more computer processors andfurther comprising: program instructions to receive, to a storagesystem, a first file from a first computing device, wherein the firstcomputing device is associated with a first user; program instructionsto analyze the received first file to determine whether the receivedfirst file is suspected of encryption by malware; program instructionsto respond to determining that the received first file is suspected ofencryption by malware by initiating one or more actions, including: (i)suspending replacement of an instance of the first file backed up to thestorage system with the received first file; (ii) determining, based aprofile associated with the first user, to interface with the first userutilizing two or more computing devices associated with the first user,wherein the first computing device includes the first file that is notstored on the second computing device; and (iii) transmitting anotification, to the first user associated with the received first file,to the two or more computing devices associated with the first user,wherein transmitting the notification to the two or more computingdevices associated with the first user includes transmitting thenotification to the second computing device, wherein the notificationincludes a result of analysis of the received first file; and programinstructions to store the received first file to a portion of thestorage system designated for file isolation.
 2. The computer programproduct of claim 1, further comprising: program instructions todetermine that the storage system utilizes one or more securitymeasures, wherein a first security measure dictates that a confirmationof a false-positive result by a user is received from a computingdevice, identified within a profile associated with the user, differentfrom computing devices that store a version of a file that is suspectedof encryption by malware; and program instructions to receive, from acomputing device associated with the first user, a response from thefirst user associated with the received first file, indicating whetherthe analysis of the received first file is a false-positive result forencryption by malware.
 3. The computer program product of claim 1,wherein the program instructions to analyze the received first file todetermine whether the received first file is suspected of encryption bymalware further comprise: program instructions to determine one or moreattributes associated with the received first file; program instructionsto compare the one or more attributes of the received first file to oneor more corresponding items related to the received first file, whereinthe items related to the received first file are selected from the groupconsisting of a structure of the received first file, a portion ofcontent of the received first file, one or more file attributes of otherversions of the first file, a structure of another version of the firstfile, and a portion of content of another version of the first file; andprogram instructions to respond to the comparison of the one or moreattributes associated with the received first file and the one or morecorresponding items related to the received first file identifying oneor more differences by indicating that the received first file issuspected of encryption by malware.
 4. The computer program product ofclaim 1, further comprising: program instructions to determine that thestorage system supports version control of files backed up to thestorage system; and program instructions to respond to determining thatthe storage system supports version control of files backed up to thestorage system by suspending file rotation of versions of the first filebacked up to the storage system.
 5. The computer program product ofclaim 2, further comprising: program instructions to respond toreceiving the response from the computing device associated with thefirst user that indicates that the analysis of the received first fileis not a false-positive result by identifying a profile associated withthe user of the received first file; program instructions to determine alisting of files backed up to the storage system corresponding to thefirst user and the first computing device, including the received firstfile; and program instructions to suspend rotation of files of thedetermined listing of files backed up to the storage system.
 6. Thecomputer program product of claim 2, further comprising: programinstructions to respond to receiving the response from the computingdevice associated with the first user that indicates that the analysisof the received first is a false-positive result by determining whetherthe response indicating the false-positive result is received from thesecond computing device associated with the first user; programinstructions to respond to determining that the response indicating thefalse-positive result is received from the second computing deviceassociated with the first user by determine a listing of files backed upto the storage system corresponding to the first user and the firstcomputing device, including the received first file; programinstructions to resume rotation of files of the determined listing offiles backed up to the storage system; and program instructions to storethe received first file to the storage system based, at least in part,on a rotations of files and the user profile of the first user, whereinthe received first files is removed from file isolation in response todetermining that a false-positive result is confirmed.
 7. A computersystem for safeguarding a stored file from malware, the computer systemcomprising: one or more computer processors; one or more computerreadable storage media; program instructions stored on the computerreadable storage media for reading/execution by at least one of the oneor more computer processors, the program instructions furthercomprising: program instructions to receive, to a storage system, afirst file from a first computing device, wherein the first computingdevice is associated with a first user; program instructions to analyzethe received first file to determine whether the received first file issuspected of encryption by malware; program instructions to respond todetermining that the received first file is suspected of encryption bymalware by initiating one or more actions, including: (i) suspendingreplacement of an instance of the first file backed up to the storagesystem with the received first file; (ii) determining, based a profileassociated with the first user, to interface with the first userutilizing two or more computing devices associated with the first user,wherein the first computing device includes the first file that is notstored on the second computing device; and (iii) transmitting anotification, to the first user associated with the received first file,to the two or more computing devices associated with the first user,wherein transmitting the notification to the two or more computingdevices associated with the first user includes transmitting thenotification to the second computing device, wherein the notificationincludes a result of analysis of the received first file; and programinstructions to store the received first file to a portion of thestorage system designated for file isolation.
 8. The computer system ofclaim 7, further comprising: program instructions to determine that thestorage system utilizes one or more security measures, wherein a firstsecurity measure dictates that a confirmation of a false-positive resultby a user is received from a computing device, identified within aprofile associated with the user, different from computing devices thatstore a version of a file that is suspected of encryption by malware;and program instructions to receive, from a computing device associatedwith the first user, a response from the first user associated with thereceived first file, indicating whether the analysis of the receivedfirst file is a false-positive result for encryption by malware.
 9. Thecomputer system of claim 8, further comprising: program instructions torespond to receiving the response from the computing device associatedwith the first user that indicates that the analysis of the receivedfirst file is not a false-positive result by identifying a profileassociated with the user of the received first file; programinstructions to determine a listing of files backed up to the storagesystem corresponding to the first user and the first computing device,including the received first file; and program instructions to suspendrotation of files of the determined listing of files backed up to thestorage system.
 10. The computer system of claim 8, further comprising:program instructions to respond to receiving the response from thecomputing device associated with the first user that indicates that theanalysis of the received first is a false-positive result by determiningwhether the response indicating the false-positive result is receivedfrom the second computing device associated with the first user; programinstructions to respond to determining that the response indicating thefalse-positive result is received from the second computing deviceassociated with the first user by determine a listing of files backed upto the storage system corresponding to the first user and the firstcomputing device, including the received first file; programinstructions to resume rotation of files of the determined listing offiles backed up to the storage system; and program instructions to storethe received first file to the storage system based, at least in part,on a rotations of files and the user profile of the first user, whereinthe received first files is removed from file isolation in response todetermining that a false-positive result is confirmed.
 11. The computersystem of claim 7, wherein the program instructions to analyze thereceived first file to determine whether the received first file issuspected of encryption by malware further comprise: programinstructions to determine one or more attributes associated with thereceived first file; program instructions to compare the one or moreattributes of the received first file to one or more corresponding itemsrelated to the received first file, wherein the items related to thereceived first file are selected from the group consisting of astructure of the received first file, a portion of content of thereceived first file, one or more file attributes of other versions ofthe first file, a structure of another version of the first file, and aportion of content of another version of the first file; and programinstructions to respond to comparison of the one or more attributesassociated with the received first file and the one or morecorresponding items related to the received first file identifying oneor more differences by indicating that the received first file issuspected of encryption by malware.
 12. The computer system of claim 7,further comprising: program instructions to determine that the storagesystem supports version control of files backed up to the storagesystem; and program instructions to respond to determining the storagesystem supports version control of files backed up to the storage systemby suspending file rotation of versions of the first file backed up tothe storage system.
 13. The computer program product of claim 1, furthercomprising: program instructions to determine that the storage systemsupports user profiles for backing up files to the storage system, auser profile including: a list of files that a user backed up to thestorage system, the list of files further including: identities of oneor more computing devices respectively associated with files of the listof files; an indication that identifies whether a file included in thelist of files, backed up to the storage system, is shared; and one ormore computing devices associated with the user, wherein the one or morecomputing devices of the user include the first computing device. 14.The computer system of claim 7, further comprising: program instructionsto determine that the storage system supports user profiles for backingup files to the storage system, a user profile including: a list offiles that a user backed up to the storage system, the list of filesfurther including: identities of one or more computing devicesrespectively associated with files of the list of files; an indicationthat identifies whether a file included in the list of files, backed upto the storage system, is shared; and one or more computing devicesassociated with the user, wherein the one or more computing devices ofthe user include the first computing device.